The present invention concerns computer networking and pertains particularly to a local area network receive filter.
Communication between computers and other computing equipment is achieved through various types of networks. For example, computers and computer equipment within fairly close proximity are often connected using a local area network (LAN). For computers and computer equipment separated by a greater distance, wide area networks (WAN) may be used to make the connections.
Often LANs and/or WANs are connected together in order for one computer on a LAN or a WAN to communicate with another computer in a different LAN or WAN. LANs and WANs may be joined, for example, using a network bridge or a network router. Each of the individual LAN and WAN may be considered a network segment of a larger network.
When networks are interconnected, it is desirable for a LAN to be able to reject data packets not destined for an individual local network device within the LAN. This is done, for example, by filters within a network bridge or a network router which specifically reject data packets not destined for an individual local network device on the LAN.
Packet addresses are generally filtered using a software routine, or by a hardware device which uses content addressable memory (CAM).
Filtering via software involves a processor with a fast enough clock-rate to enable the software to read and, subsequently, compare addresses from each packet sent. A comparison algorithm matches the packet destination address for each packet with a similar address in a pre-defined look-up table of local network addresses. The overhead required by such a software implementation as well as the higher cost for the fast processor make this an unattractive solution, especially for faster network protocols, such as 100VG, 100TX and Gigabit.
Devices which use CAM hardware filtering overcome the speed disadvantage generally inherent in software filtering implementations. The CAM allows storage of the specific local network addresses within a memory array. As packet addresses are presented to the CAM, the CAM performs the comparison logic necessary to determine if there is a match. The CAM indicates there is a match when the destination address for a packet coincides with a local network address stored in the CAM. While the use of CAM devices overcomes some of the disadvantages of software filtering implementations, the high component costs of CAM devices (and the associated circuitry) is the primary limiting factor of utilizing this technology. Another downside of a CAM implementation is the small memory array sizes currently available.